/*
 * 04多级指针.c
 *
 *  Created on: 2024年3月9日
 *      Author: HP
 */
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main0604(void) {
	// 指针数组里面存储的元素都是指针
	int a[] = {1,2,3};
	int b[] = {4,5,6};
	int c[] = {7,8,9};
	int* arr[] = {a, b, c};
	// 指针数组和二级指针建立关系
	int** p = arr;

	printf("%d\n", **p); // 1 // arr[0][0]
	// 二级指针加偏移量，相当于跳过了一个一维数组大小
	printf("%d\n", **(p+1)); // 4
	// 一级指针加偏移量，相当于跳过了一个元素
	printf("%d\n", *(*p+1)); // 2
	printf("%d\n", *(*(p+1)+1)); // 5

	return 0;
}

int main060401(void) {
	int a = 10;
	int b = 20;
	int* p = &a;
	// 二级指针变量的值
	int** pp = &p;

	// *pp是一级指针的值
	*pp = &b; // 指针p改为指向b地址
	printf("%d\n", *p); // 20

	// **pp是变量的值
	**pp= 100;
	printf("%d\n", b); // 100
}
